﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using planerka.DataAccess.Models;
using System.Web.Mvc;

namespace planerka.DataAccess.ViewModels
{
    public class tasksViewModel
    {
        public string resultMessage { get; set; }
        public List<task> tasks { get; set; }

        public int sumTotal { get; set; }
        public int sumInPeriod { get; set; }
        public int sumOutPeriod { get; set; }
        public int sumInTotal { get; set; }
        public int sumOutTotal { get; set; }

        public int sumPay { get; set; } // к оплате
        
        public List<SelectListItem> userNames { get; set; } // имена для заполнения таблицы

        public List<SelectListItem> owners { get; set; } // ВЛАДЕЛЬЦЫ - выпадающий список для фильтра
        public List<SelectListItem> customers { get; set; } // ЗАКАЗЧИКИ - выпадающий список для фильтра
        public List<SelectListItem> performers { get; set; } // ИСПОЛНИТЕЛИ - выпадающий список для фильтра
        public List<SelectListItem> projects { get; set; } // ПРОЕКТЫ - выпадающий список для фильтра

        #region filter

        // фильтр - к оплате
        public bool isToPay_filter { get; set; }

        // фильтр по владельцу проекта, если 0 - то "все"
        public long ownerID_filter { get; set; }

        // фильтр по заказчику проекта, если 0 - то "все"
        public long customerID_filter { get; set; }

        // фильтр по исполнителю задачи, если 0 - то "все"
        public long performerID_filter { get; set; }

        // фильтр по проекту, если 0 - то "все"
        public long projectID_filter { get; set; }

        // фильтр по статусу, 1,2,3,4 - все
        public List<int> taskStatus_filter { get; set; }

        // фильтр по приоритету
        public List<int> taskPriority_filter { get; set; }

        // фильтр по датам план старта и план финиша
        //public bool useDatesFilter { get; set; } // явно не показывается, срабатывает когда planStartFilter пустой
        public DateTime? planStartFilterFrom { get; set; }
        public DateTime? planStartFilterTo { get; set; }

        #endregion

        #region tuneTableColumns

        public bool tuneTableColumns_project { get; set; }
        public bool tuneTableColumns_roles { get; set; }
        public bool tuneTableColumns_status { get; set; }
        public bool tuneTableColumns_priority { get; set; }
        public bool tuneTableColumns_dates { get; set; }
        public bool tuneTableColumns_sums { get; set; }

        #endregion
    }
}
